package controller;

import java.util.List;

import model.KlsPedido;
import model.KlsReporte;

import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.Session;

import util.HibernateUtil;

public class KlsReporteManager {
	
	
	
	
	public  List<KlsReporte> list() {
 
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();

		
       List<KlsReporte> reportes = null;
        try {
             
        	reportes = session.createQuery("select rep from model.KlsReporte rep where rep.tipo = 1").list();
        	session.getTransaction().commit();
        } 
        
        
        catch (HibernateException e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        
        }
        return reportes;
    }
	
	
	public String generarReporte(String storeProcedure, int idCliente, 
			int idVehiculo, int idConductor, int idUnidadTransporte, int idDocumentoTransporte,String fechaIni,String fechaFin)
	{
		String sRepuesta = "";
		
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        try{
        	SQLQuery q  = (SQLQuery) session.createSQLQuery("exec "+storeProcedure+" :FechaIni,:FechaFin,:Vehiculo,:Conductor,:UnidadTransporte,:DocumentoTransporte,:Cliente ")
        	.setString("FechaIni", fechaIni)
        	.setString("FechaFin", fechaFin)
        	.setParameter("Vehiculo", idVehiculo )
        	.setParameter("Conductor",idConductor )
        	.setParameter("UnidadTransporte", idUnidadTransporte)
        	.setParameter("DocumentoTransporte",idDocumentoTransporte )
        	.setParameter("Cliente", idCliente);
        
        	List l = q.list(); 	
        	
       
        	session.getTransaction().commit();
        
        	}
        catch(Exception e)
        {
        	e.printStackTrace();
        	session.getTransaction().rollback();
        	return "";
        	
        }
        
        
		return sRepuesta;
		
	}
	
	
    public KlsReporte load(int ireporte) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        KlsReporte reporte = null;
       try{
        reporte = (KlsReporte) session.get(KlsReporte.class, ireporte); 
        session.getTransaction().commit();
       }
       catch(Exception e)
       {
    	   e.printStackTrace();
    	   session.getTransaction().rollback();
       }
        return reporte;
    }
	
	

}
